/*
 * Copyright (C) 2012 JiangHongTiao
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package sk.lieskove.jianghongtiao.paris.core.classify.old;

import java.io.Serializable;
import org.apache.log4j.Logger;
import sk.lieskove.jianghongtiao.common.utils.PropertiesUtils;
import weka.classifiers.Evaluation;
import weka.core.Instance;

/**
 * 
 * @author xjuraj e-mail: jjurco.sk_gmail.com
 */
public class EvaluationDelagator implements Serializable {
    
    private transient Logger log = Logger.getLogger(EvaluationDelagator.class);
    private transient PropertiesUtils pu = new PropertiesUtils(EvaluationDelagator.class);
    
    private Evaluation evaluation;

    public EvaluationDelagator(Evaluation evaluation) {
        this.evaluation = evaluation;
    }

    public double getWeightedTruePositiveRate() {
        return evaluation.weightedTruePositiveRate();
    }

    public double getWeightedTrueNegativeRate() {
        return evaluation.weightedTrueNegativeRate();
    }

    public double getWeightedRecall() {
        return evaluation.weightedRecall();
    }

    public double getWeightedPrecision() {
        return evaluation.weightedPrecision();
    }

    public double getWeightedFalsePositiveRate() {
        return evaluation.weightedFalsePositiveRate();
    }

    public double getWeightedFalseNegativeRate() {
        return evaluation.weightedFalseNegativeRate();
    }

    public double getWeightedFMeasure() {
        return evaluation.weightedFMeasure();
    }

    public double getWeightedAreaUnderROC() {
        return evaluation.weightedAreaUnderROC();
    }

    public void getUseNoPriors() {
        evaluation.useNoPriors();
    }

    public void getUpdatePriors(Instance instance) throws Exception {
        evaluation.updatePriors(instance);
    }

    public double getUnweightedMicroFmeasure() {
        return evaluation.unweightedMicroFmeasure();
    }

    public double getUnweightedMacroFmeasure() {
        return evaluation.unweightedMacroFmeasure();
    }

    public final double getUnclassified() {
        return evaluation.unclassified();
    }

    public double getTruePositiveRate(int classIndex) {
        return evaluation.truePositiveRate(classIndex);
    }

    public double getTrueNegativeRate(int classIndex) {
        return evaluation.trueNegativeRate(classIndex);
    }

    public final double getTotalCost() {
        return evaluation.totalCost();
    }

    public String getToSummaryString(String title, boolean printComplexityStatistics) {
        return evaluation.toSummaryString(title, printComplexityStatistics);
    }

    public String getToSummaryString(boolean printComplexityStatistics) {
        return evaluation.toSummaryString(printComplexityStatistics);
    }

    public String getToSummaryString() {
        return evaluation.toSummaryString();
    }

    public String getToMatrixString(String title) throws Exception {
        return evaluation.toMatrixString(title);
    }

    public String getToMatrixString() throws Exception {
        return evaluation.toMatrixString();
    }

    public String getToCumulativeMarginDistributionString() throws Exception {
        return evaluation.toCumulativeMarginDistributionString();
    }

    public String getToClassDetailsString(String title) throws Exception {
        return evaluation.toClassDetailsString(title);
    }

    public String getToClassDetailsString() throws Exception {
        return evaluation.toClassDetailsString();
    }

    public final double getSizeOfPredictedRegions() {
        return evaluation.sizeOfPredictedRegions();
    }

    public final double getRootRelativeSquaredError() {
        return evaluation.rootRelativeSquaredError();
    }

    public final double getRootMeanSquaredError() {
        return evaluation.rootMeanSquaredError();
    }

    public final double getRootMeanPriorSquaredError() {
        return evaluation.rootMeanPriorSquaredError();
    }

    public final double getRelativeAbsoluteError() throws Exception {
        return evaluation.relativeAbsoluteError();
    }

    public double getRecall(int classIndex) {
        return evaluation.recall(classIndex);
    }

    public final double getPriorEntropy() throws Exception {
        return evaluation.priorEntropy();
    }

    public double getPrecision(int classIndex) {
        return evaluation.precision(classIndex);
    }

    public final double getPctUnclassified() {
        return evaluation.pctUnclassified();
    }

    public final double getPctIncorrect() {
        return evaluation.pctIncorrect();
    }

    public final double getPctCorrect() {
        return evaluation.pctCorrect();
    }

    public double getNumTruePositives(int classIndex) {
        return evaluation.numTruePositives(classIndex);
    }

    public double getNumTrueNegatives(int classIndex) {
        return evaluation.numTrueNegatives(classIndex);
    }

    public final double getNumInstances() {
        return evaluation.numInstances();
    }

    public double getNumFalsePositives(int classIndex) {
        return evaluation.numFalsePositives(classIndex);
    }

    public double getNumFalseNegatives(int classIndex) {
        return evaluation.numFalseNegatives(classIndex);
    }

    public final double getMeanPriorAbsoluteError() {
        return evaluation.meanPriorAbsoluteError();
    }

    public final double getMeanAbsoluteError() {
        return evaluation.meanAbsoluteError();
    }

    public final double getKappa() {
        return evaluation.kappa();
    }

    public final double getIncorrect() {
        return evaluation.incorrect();
    }

    public String getRevision() {
        return evaluation.getRevision();
    }

    public boolean getDiscardPredictions() {
        return evaluation.getDiscardPredictions();
    }

    public double[] getClassPriors() {
        return evaluation.getClassPriors();
    }

    public double getFalsePositiveRate(int classIndex) {
        return evaluation.falsePositiveRate(classIndex);
    }

    public double getFalseNegativeRate(int classIndex) {
        return evaluation.falseNegativeRate(classIndex);
    }

    public double getFMeasure(int classIndex) {
        return evaluation.fMeasure(classIndex);
    }

    public final double getCoverageOfTestCasesByPredictedRegions() {
        return evaluation.coverageOfTestCasesByPredictedRegions();
    }

    public final double getCorrelationCoefficient() throws Exception {
        return evaluation.correlationCoefficient();
    }

    public final double getCorrect() {
        return evaluation.correct();
    }

    public final double getAvgCost() {
        return evaluation.avgCost();
    }

    public final double getSFSchemeEntropy() {
        return evaluation.SFSchemeEntropy();
    }

    public final double getSFPriorEntropy() {
        return evaluation.SFPriorEntropy();
    }

    public final double getSFMeanSchemeEntropy() {
        return evaluation.SFMeanSchemeEntropy();
    }

    public final double getSFMeanPriorEntropy() {
        return evaluation.SFMeanPriorEntropy();
    }

    public final double getSFMeanEntropyGain() {
        return evaluation.SFMeanEntropyGain();
    }

    public final double getSFEntropyGain() {
        return evaluation.SFEntropyGain();
    }

    public final double getKBRelativeInformation() throws Exception {
        return evaluation.KBRelativeInformation();
    }

    public final double getKBMeanInformation() throws Exception {
        return evaluation.KBMeanInformation();
    }

    public final double getKBInformation() throws Exception {
        return evaluation.KBInformation();
    }
    
    
}
